go/types.operand.mode (field)

317 uses

	go/types (current package)
		api_predicates.go#L34: 	x := operand{mode: value, typ: V}
		api_predicates.go#L45: 	x := operand{mode: value, typ: V}
		assignments.go#L27: 	switch x.mode {
		assignments.go#L39: 		x.mode = invalid
		assignments.go#L54: 					x.mode = invalid
		assignments.go#L64: 					x.mode = invalid
		assignments.go#L82: 			x.mode = invalid
		assignments.go#L99: 		x.mode = invalid
		assignments.go#L117: 		x.mode = invalid
		assignments.go#L122: 	if x.mode == invalid || !isValid(x.typ) || !isValid(lhs.typ) {
		assignments.go#L130: 	if x.mode != constant_ {
		assignments.go#L145: 	if x.mode == invalid {
		assignments.go#L157: 	if x.mode == invalid || !isValid(x.typ) || !isValid(lhs.typ) {
		assignments.go#L161: 		x.mode = invalid
		assignments.go#L173: 				x.mode = invalid
		assignments.go#L222: 	if x.mode == invalid || !isValid(x.typ) {
		assignments.go#L228: 	switch x.mode {
		assignments.go#L237: 			if op.mode == mapindex {
		assignments.go#L256: 			x.mode = invalid
		assignments.go#L447: 		if commaOk && rhs[0].mode != invalid && rhs[1].mode != invalid {
		assignments.go#L455: 	if rhs[0].mode != invalid {
		assignments.go#L511: 		if commaOk && rhs[0].mode != invalid && rhs[1].mode != invalid {
		assignments.go#L519: 	if rhs[0].mode != invalid {
		builtins.go#L59: 			if a.mode == invalid {
		builtins.go#L142: 		x.mode = value
		builtins.go#L153: 				if x.mode == constant_ {
		builtins.go#L224: 		x.mode = mode
		builtins.go#L243: 		x.mode = novalue
		builtins.go#L264: 		x.mode = novalue
		builtins.go#L299: 			if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L314: 		if x.mode == invalid || y.mode == invalid {
		builtins.go#L347: 		if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L350: 			x.mode = value
		builtins.go#L353: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L413: 		x.mode = value
		builtins.go#L440: 		if x.mode == invalid {
		builtins.go#L444: 		x.mode = novalue
		builtins.go#L455: 			if x.mode == constant_ {
		builtins.go#L468: 				if x.mode == invalid {
		builtins.go#L501: 		if x.mode == constant_ {
		builtins.go#L508: 			x.mode = value
		builtins.go#L511: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L570: 		x.mode = value
		builtins.go#L587: 			if a.mode == invalid {
		builtins.go#L599: 				if x.mode == invalid {
		builtins.go#L608: 				if x.mode == constant_ && a.mode == constant_ {
		builtins.go#L613: 					x.mode = value
		builtins.go#L619: 		if x.mode != constant_ {
		builtins.go#L620: 			x.mode = value
		builtins.go#L623: 			if x.mode == invalid {
		builtins.go#L633: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L649: 		x.mode = value
		builtins.go#L671: 		if x.mode == invalid {
		builtins.go#L675: 		x.mode = novalue
		builtins.go#L688: 				if a.mode == invalid {
		builtins.go#L695: 		x.mode = novalue
		builtins.go#L702: 		x.mode = value
		builtins.go#L713: 		if x.mode == invalid {
		builtins.go#L722: 		x.mode = value
		builtins.go#L731: 		if x.mode == invalid {
		builtins.go#L736: 			x.mode = value
		builtins.go#L741: 			x.mode = constant_
		builtins.go#L759: 		if x.mode == invalid {
		builtins.go#L789: 			if x.mode == variable || indirect {
		builtins.go#L800: 			x.mode = value
		builtins.go#L810: 			x.mode = constant_
		builtins.go#L819: 		if x.mode == invalid {
		builtins.go#L824: 			x.mode = value
		builtins.go#L834: 			x.mode = constant_
		builtins.go#L856: 		x.mode = value
		builtins.go#L873: 		x.mode = value
		builtins.go#L884: 		if x.mode == invalid {
		builtins.go#L893: 		x.mode = value
		builtins.go#L904: 		if x.mode == invalid {
		builtins.go#L908: 		x.mode = value
		builtins.go#L918: 		if x.mode != constant_ || !isBoolean(x.typ) {
		builtins.go#L940: 			x.mode = novalue
		builtins.go#L950: 		if x.mode == invalid {
		builtins.go#L959: 	assert(x.mode != invalid)
		call.go#L53: 			x.mode = invalid
		call.go#L67: 		x.mode = invalid
		call.go#L104: 			args = []*operand{{mode: value, expr: expr, typ: T.sig}}
		call.go#L118: 			x.mode = invalid
		call.go#L128: 	x.mode = value
		call.go#L179: 			assert(x.mode == value)
		call.go#L190: 	switch x.mode {
		call.go#L199: 		if x.mode == invalid {
		call.go#L203: 		x.mode = invalid
		call.go#L209: 			if x.mode != invalid {
		call.go#L233: 			x.mode = invalid
		call.go#L237: 		if x.mode != invalid && x.mode != constant_ {
		call.go#L245: 	cgocall := x.mode == cgofunc
		call.go#L257: 		x.mode = invalid
		call.go#L274: 			x.mode = invalid
		call.go#L285: 			x.mode = invalid
		call.go#L317: 		x.mode = novalue
		call.go#L320: 			x.mode = commaerr
		call.go#L322: 			x.mode = value
		call.go#L326: 		x.mode = value
		call.go#L334: 	if x.mode == value && sig.TypeParams().Len() > 0 && isParameterized(sig.TypeParams().list(), x.typ) {
		call.go#L335: 		x.mode = invalid
		call.go#L410: 			if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		call.go#L414: 					resList[i] = &operand{mode: value, expr: e, typ: v.typ}
		call.go#L748: 				x.mode = constant_
		call.go#L752: 				x.mode = typexpr
		call.go#L755: 				x.mode = variable
		call.go#L761: 				x.mode = funcMode
		call.go#L764: 					x.mode = value
		call.go#L768: 				x.mode = builtin
		call.go#L781: 	switch x.mode {
		call.go#L815: 	obj, index, indirect = lookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel, false)
		call.go#L829: 			if x.mode == typexpr {
		call.go#L841: 			alt, _, _ := lookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel, true)
		call.go#L853: 	if x.mode == typexpr {
		call.go#L890: 		x.mode = value
		call.go#L905: 			if x.mode == variable || indirect {
		call.go#L906: 				x.mode = variable
		call.go#L908: 				x.mode = value
		call.go#L931: 				if x.mode == variable {
		call.go#L962: 			x.mode = value
		call.go#L981: 	x.mode = invalid
		call.go#L1009: 	x.mode = value // anything but invalid
		call.go#L1041: 	return x.mode != invalid
		const.go#L23: 	assert(x.mode == constant_)
		const.go#L243: 		x.mode = invalid
		const.go#L255: 	assert(x.mode == constant_)
		const.go#L297: 		x.mode = invalid
		conversions.go#L21: 	constArg := x.mode == constant_
		conversions.go#L53: 			x.mode = invalid
		conversions.go#L82: 		x.mode = value // type parameters are not constants
		conversions.go#L86: 		x.mode = value
		conversions.go#L95: 		x.mode = invalid
		conversions.go#L116: 		} else if x.mode == constant_ && isInteger(x.typ) && allString(T) {
		expr.go#L131: 	if x.mode == invalid {
		expr.go#L140: 		if _, ok := ast.Unparen(e.X).(*ast.CompositeLit); !ok && x.mode != variable {
		expr.go#L142: 			x.mode = invalid
		expr.go#L145: 		x.mode = value
		expr.go#L151: 			x.mode = commaok
		expr.go#L156: 		x.mode = invalid
		expr.go#L163: 			x.mode = invalid
		expr.go#L171: 		x.mode = invalid
		expr.go#L175: 	if x.mode == constant_ {
		expr.go#L190: 	x.mode = value
		expr.go#L364: 		if c.mode == invalid {
		expr.go#L388: 	if x.mode == invalid || isTyped(x.typ) || !isValid(target) {
		expr.go#L403: 		if x.mode == constant_ {
		expr.go#L485: 		x.mode = invalid
		expr.go#L560: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L565: 		x.mode = value
		expr.go#L602: 	x.mode = invalid
		expr.go#L621: 	if x.mode == constant_ {
		expr.go#L631: 		x.mode = invalid
		expr.go#L641: 	if y.mode == constant_ {
		expr.go#L646: 			x.mode = invalid
		expr.go#L654: 			if y.mode == invalid {
		expr.go#L655: 				x.mode = invalid
		expr.go#L664: 				x.mode = invalid
		expr.go#L671: 			if y.mode == invalid {
		expr.go#L672: 				x.mode = invalid
		expr.go#L677: 			x.mode = invalid
		expr.go#L682: 	if x.mode == constant_ {
		expr.go#L683: 		if y.mode == constant_ {
		expr.go#L698: 				x.mode = invalid
		expr.go#L741: 			x.mode = value
		expr.go#L749: 		x.mode = invalid
		expr.go#L753: 	x.mode = value
		expr.go#L785: 	if x.mode == invalid {
		expr.go#L788: 	if y.mode == invalid {
		expr.go#L789: 		x.mode = invalid
		expr.go#L800: 	if x.mode == invalid {
		expr.go#L823: 		x.mode = invalid
		expr.go#L828: 		x.mode = invalid
		expr.go#L834: 		if (x.mode == constant_ || allInteger(x.typ)) && y.mode == constant_ && constant.Sign(y.val) == 0 {
		expr.go#L836: 			x.mode = invalid
		expr.go#L841: 		if x.mode == constant_ && y.mode == constant_ && isComplex(x.typ) {
		expr.go#L846: 				x.mode = invalid
		expr.go#L852: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L869: 	x.mode = value
		expr.go#L922: 		if x.mode == invalid {
		expr.go#L926: 		if y.mode == invalid {
		expr.go#L927: 			x.mode = invalid
		expr.go#L993: 	if x.mode == invalid || x.mode == novalue {
		expr.go#L1013: 		x.mode = invalid
		expr.go#L1024: 	x.mode = invalid
		expr.go#L1041: 		if x.mode == invalid {
		expr.go#L1047: 		if x.mode == invalid {
		expr.go#L1053: 		if x.mode == invalid {
		expr.go#L1074: 		if x.mode == invalid {
		expr.go#L1080: 		if x.mode == invalid {
		expr.go#L1086: 		if x.mode == invalid {
		expr.go#L1109: 		x.mode = commaok
		expr.go#L1117: 		switch x.mode {
		expr.go#L1140: 			x.mode = variable
		expr.go#L1146: 		if x.mode == invalid {
		expr.go#L1156: 		if x.mode == invalid {
		expr.go#L1167: 		x.mode = typexpr
		expr.go#L1184: 	x.mode = invalid
		expr.go#L1274: 	if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		expr.go#L1278: 			list[i] = &operand{mode: value, expr: e, typ: v.typ}
		expr.go#L1285: 	if allowCommaOk && (x.mode == mapindex || x.mode == commaok || x.mode == commaerr) {
		expr.go#L1286: 		x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
		expr.go#L1287: 		if x.mode == commaerr {
		expr.go#L1320: 	if modeset&(1<<x.mode) != 0 {
		expr.go#L1323: 		switch x.mode {
		expr.go#L1341: 		x.mode = invalid
		expr.go#L1347: 	if x.mode == value {
		expr.go#L1352: 			x.mode = invalid
		index.go#L23: 	switch x.mode {
		index.go#L30: 		x.mode = invalid
		index.go#L34: 			x.mode = typexpr
		index.go#L47: 	if x.mode == invalid {
		index.go#L58: 			if x.mode == constant_ {
		index.go#L64: 			x.mode = value
		index.go#L71: 		if x.mode != variable {
		index.go#L72: 			x.mode = value
		index.go#L80: 			x.mode = variable
		index.go#L86: 		x.mode = variable
		index.go#L92: 			x.mode = invalid
		index.go#L99: 		x.mode = mapindex
		index.go#L124: 				if x.mode != variable {
		index.go#L166: 					x.mode = invalid
		index.go#L173: 				x.mode = mapindex
		index.go#L181: 			x.mode = mode
		index.go#L190: 		x.mode = invalid
		index.go#L196: 		x.mode = invalid
		index.go#L213: 	if x.mode == invalid {
		index.go#L263: 		x.mode = invalid
		index.go#L274: 				x.mode = invalid
		index.go#L278: 			if x.mode == constant_ {
		index.go#L291: 		if x.mode != variable {
		index.go#L293: 			x.mode = invalid
		index.go#L312: 		x.mode = invalid
		index.go#L316: 	x.mode = value
		index.go#L321: 		x.mode = invalid
		index.go#L399: 	if x.mode != constant_ {
		index.go#L419: 	if x.mode == invalid {
		index.go#L425: 	if x.mode == invalid {
		index.go#L435: 	if x.mode == constant_ {
		infer.go#L68: 		if arg.mode == invalid {
		infer.go#L168: 		if arg.mode == invalid {
		literals.go#L64: 			x.mode = invalid
		literals.go#L69: 	if x.mode == invalid {
		literals.go#L75: 		x.mode = invalid
		literals.go#L103: 		x.mode = value
		literals.go#L107: 		x.mode = invalid
		literals.go#L156: 			x.mode = invalid
		literals.go#L237: 			x.mode = invalid
		literals.go#L265: 			x.mode = invalid
		literals.go#L275: 			x.mode = invalid
		literals.go#L291: 			if x.mode == invalid {
		literals.go#L294: 			if x.mode == constant_ {
		literals.go#L341: 			x.mode = invalid
		literals.go#L346: 	x.mode = value
		operand.go#L60: 	mode operandMode
		operand.go#L116: 		if x.mode == nilvalue {
		operand.go#L127: 		if x.mode == value && x.typ == Typ[UntypedNil] {
		operand.go#L138: 		switch x.mode {
		operand.go#L156: 	switch x.mode {
		operand.go#L172: 	buf.WriteString(operandModeString[x.mode])
		operand.go#L175: 	if x.mode == constant_ {
		operand.go#L288: 		x.mode = invalid
		operand.go#L292: 	x.mode = constant_
		operand.go#L300: 		return x.mode == nilvalue
		operand.go#L302: 		return x.mode == value && x.typ == Typ[UntypedNil]
		operand.go#L313: 	if x.mode == invalid || !isValid(T) {
		range.go#L41: 	if isTypes2 && x.mode != invalid && sValue == nil && !check.hasCallOrRecv {
		range.go#L57: 				mode: constant_,
		range.go#L68: 	if x.mode != invalid {
		range.go#L140: 				y.mode = value
		range.go#L176: 				if x.mode != invalid && !isInteger(x.typ) {
		range.go#L181: 				y.mode = value
		recording.go#L23: 	switch x.mode {
		recording.go#L39: 		check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
		recording.go#L41: 		check.recordTypeAndValue(x.expr, x.mode, typ, val)
		recording.go#L100: 	if a[0].mode == invalid {
		stmt.go#L242: 		if x.mode == invalid || v.mode == invalid {
		stmt.go#L246: 		if v.mode == invalid {
		stmt.go#L252: 		if res.mode == invalid {
		stmt.go#L255: 		if v.mode != constant_ {
		stmt.go#L448: 		switch x.mode {
		stmt.go#L468: 		if ch.mode == invalid || val.mode == invalid {
		stmt.go#L489: 		if x.mode == invalid {
		stmt.go#L499: 		if x.mode == invalid {
		stmt.go#L531: 			if x.mode == invalid {
		stmt.go#L612: 		if x.mode != invalid && !allBoolean(x.typ) {
		stmt.go#L639: 			if x.mode != invalid && !Comparable(x.typ) && !hasNil(x.typ) {
		stmt.go#L641: 				x.mode = invalid
		stmt.go#L646: 			x.mode = constant_
		stmt.go#L731: 			if x.mode != invalid {
		stmt.go#L840: 			if x.mode != invalid && !allBoolean(x.typ) {
		typexpr.go#L22: 	x.mode = invalid
		typexpr.go#L108: 		x.mode = constant_
		typexpr.go#L115: 		x.mode = typexpr
		typexpr.go#L128: 		x.mode = variable
		typexpr.go#L132: 		x.mode = value
		typexpr.go#L136: 		x.mode = builtin
		typexpr.go#L139: 		x.mode = value
		typexpr.go#L260: 		switch x.mode {
		typexpr.go#L277: 		switch x.mode {
		typexpr.go#L525: 	if x.mode != constant_ {
		typexpr.go#L526: 		if x.mode != invalid {